<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>选择排序</title>
</head>

<body>
    <script>
        //每一趟从待排序的数据元素中选择最小（或最大）的一个元素作为首元素，直到所有元素排完为止
        function selectSort(arr) {
            for (let i = 0; i < arr.length - 1; i++) {
                let minIndex = i
                for (let j = i + 1; j < arr.length; j++) {
                    if (arr[j] < arr[minIndex]) {
                        minIndex = j

                    }
                }
                let t = arr[i]
                arr[i] = arr[minIndex]
                arr[minIndex] = t
                /*无论数组原始排列如何，比较次数是不变的；
                对于交换操作，
                    数组完全有序的时候，无需任何交换移动;
                    数组倒序的时候，交换次数为n-1次;*/
            }
            return arr

        }
        console.log(selectSort([5, 7, 4, 6, 18, 9, 23, 99, 45]))
    </script>
</body>

</html>